/**
 * 认证相关API接口
 * @author Wu.Liang
 * @date 2025-01-21
 */

import request from '@/api/request'

/**
 * 认证相关API
 */
const authApi = {
  /**
   * 用户登录
   * @param {object} data 登录参数
   * @param {string} data.username 用户名
   * @param {string} data.password 密码
   * @param {string} data.captcha 验证码
   * @param {string} data.captchaKey 验证码key
   */
  login(data) {
    return request.post('/api/user/auth/login', data)
  },

  /**
   * App端用户登录（带身份验证）
   * @param {object} data 登录参数
   * @param {string} data.username 用户名
   * @param {string} data.password 密码
   * @param {number} data.loginIdentityType 登录身份类型：1-房产业主登录，2-物业人员登录，3-普通用户登录
   * @param {string} data.captcha 验证码
   * @param {string} data.captchaKey 验证码key
   */
  appLogin(data) {
    return request.post('/api/user/auth/app/login', data)
  },
  
  /**
   * 生物识别登录
   * @param {object} data 生物识别登录参数
   * @param {string} data.token 生物识别token
   */
  biometricLogin(data) {
    return request.post('/api/user/auth/biometric-login', data)
  },
  
  /**
   * 获取生物识别token
   */
  getBiometricToken() {
    return request.get('/api/user/auth/biometric-token')
  },
  
  /**
   * 用户注册
   * @param {object} data 注册参数
   * @param {string} data.username 用户名
   * @param {string} data.password 密码
   * @param {string} data.confirmPassword 确认密码
   * @param {string} data.phone 手机号
   * @param {string} data.email 邮箱
   * @param {string} data.captcha 验证码
   * @param {string} data.captchaKey 验证码key
   */
  register(data) {
    return request.post('/api/user/auth/register', data)
  },
  
  /**
   * 用户登出
   */
  logout() {
    return request.post('/api/user/auth/logout')
  },
  
  /**
   * 获取验证码
   * @param {string} type 验证码类型 (login, register)
   */
  getCaptcha(type = 'login') {
    return request.get('/api/user/auth/captcha/image')
  },
  
  /**
   * 获取当前用户信息
   * @deprecated 不再使用，直接使用登录接口返回的用户信息
   */
  getUserInfo() {
    console.warn('getUserInfo方法已废弃，请直接使用登录接口返回的用户信息')
    return request.get('/api/user/auth/info')
  },
  
  /**
   * 刷新token
   */
  refreshToken() {
    return request.post('/api/user/auth/refresh')
  },
  
  /**
   * 修改密码
   * @param {object} data 修改密码参数
   * @param {string} data.oldPassword 旧密码
   * @param {string} data.newPassword 新密码
   * @param {number} data.userId 用户ID
   */
  changePassword(data) {
    return request.post('/api/user/auth/password/change', data)
  },
  
  /**
   * 忘记密码
   * @param {object} data 忘记密码参数
   * @param {string} data.username 用户名
   * @param {string} data.phone 手机号
   * @param {string} data.email 邮箱
   * @param {string} data.captcha 验证码
   * @param {string} data.captchaKey 验证码key
   */
  forgotPassword(data) {
    return request.post('/api/user/auth/forgot-password', data)
  },
  
  /**
   * 重置密码
   * @param {object} data 重置密码参数
   * @param {string} data.token 重置token
   * @param {string} data.newPassword 新密码
   * @param {string} data.confirmPassword 确认新密码
   */
  resetPassword(data) {
    return request.post('/api/user/auth/reset-password', data)
  },
  
  /**
   * 发送短信验证码
   * @param {object} data 发送短信参数
   * @param {string} data.phone 手机号
   * @param {string} data.type 验证码类型 (login, register, reset)
   */
  sendSmsCode(data) {
    return request.post('/api/user/auth/sms-code', data)
  },
  
  /**
   * 验证短信验证码
   * @param {object} data 验证短信参数
   * @param {string} data.phone 手机号
   * @param {string} data.code 验证码
   * @param {string} data.type 验证码类型
   */
  verifySmsCode(data) {
    return request.post('/api/user/auth/verify-sms', data)
  },
  
  /**
   * 检查登录状态
   */
  checkLoginStatus() {
    return request.get('/api/user/auth/check')
  },
  
  /**
   * 获取用户菜单权限
   */
  getUserMenus() {
    return request.get('/api/user/auth/menus')
  },
  
  /**
   * 检查登录状态（兼容后端接口）
   */
  checkLogin() {
    return request.get('/api/user/auth/check')
  },
  
  /**
   * 获取用户菜单（兼容后端接口）
   */
  getMenus() {
    return request.get('/api/user/auth/menus')
  }
}

export default authApi 